package com.heima.schedule.client;

import com.heima.apis.schedule.IScheduleClient;
import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.schedule.dto.Task;
import com.heima.schedule.service.TaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("")
public class ScheduleClient implements IScheduleClient {
	
	@Autowired
	private TaskService taskService;
	
	/**
	 * 添加任务
	 * @param task 任务对象
	 * @return 任务id
	 */
	@PostMapping("/api/v1/task/add")
	public ResponseResult addTask(@RequestBody Task task) {
		return ResponseResult.okResult(taskService.addTask(task));
	}
	
	/**
	 * 取消任务
	 * @param taskId 任务id
	 * @return 取消结果
	 */
	@GetMapping("/api/v1/task/cancel/{taskId}")
	public ResponseResult cancelTask(@PathVariable("taskId") long taskId) {
		return ResponseResult.okResult(taskService.cancelTask(taskId));
	}
	
	/**
	 * 按照类型和优先级来拉取任务
	 */
	@GetMapping("/api/v1/task/poll")
	public ResponseResult poll() {
		return ResponseResult.okResult(taskService.poll());
	}
}
